﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;

namespace Proyecta.Usuarios
{
    public partial class Usuarios : System.Web.UI.Page
    {
        private string id;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)// si la pagina esta en curso de cambio
            {
                this.id = Request.QueryString["id"];
                DataToUi(id);
                llenarComboBoxInstituciones();
                llenarComboBoxRoles();
            }
        }     

        protected void btnagregar_Click(object sender, EventArgs e)//implementa insertar
        {
            insertar();
            Redireccionar();
        }

        protected void btnmodificar_Click(object sender, EventArgs e)//implementa modificar
        {
            modificar();
            Redireccionar();
        }

        protected void btneliminar_Click(object sender, EventArgs e)//implementa Eliminar
        {
            eliminar();
            Redireccionar();
        }

        protected void btnMostar_Click(object sender, EventArgs e)//implementa  redireccionar
        {
            Redireccionar();
        }

        public void insertar()//Accion de insertar
        {
            Proyecta.Data.BO.UsuariosBO bo = new Data.BO.UsuariosBO();
            Proyecta.Data.DAO.RolesDAO dao = new Data.DAO.RolesDAO();
            bo.ApellidoPaterno = txtApellidoPaterno.Text;
            bo.ApellidoMaterno = txtApellidoMaterno.Text;
            bo.Contrasena = txtcontraseña.Text;
            bo.eliminado = false;
            bo.Email = txtEmail.Text;
            bo.idInstitucion = int.Parse(lblidInst.Text);
            bo.idRol = int.Parse(lblIdRol.Text);
            bo.Nombres = txtNombre.Text;
            dao.Insertar(bo);
            
        }

        public void modificar()//Accion de modificar
        {
            Proyecta.Data.BO.UsuariosBO bo = new Data.BO.UsuariosBO();
            Proyecta.Data.DAO.RolesDAO dao = new Data.DAO.RolesDAO();
            bo.ApellidoPaterno = txtApellidoPaterno.Text;
            bo.ApellidoMaterno = txtApellidoMaterno.Text;
            bo.Contrasena = txtcontraseña.Text;
            bo.eliminado = false;
            bo.Email = txtEmail.Text;
            bo.idInstitucion = int.Parse(lblidInst.Text);
            bo.idRol = int.Parse(lblIdRol.Text);
            bo.Nombres = txtNombre.Text;
            bo.idUsuario = int.Parse(lblID.Text);
            dao.Modificar(bo);
        }

        public void eliminar()//Accion de Eliminar
        {
            Proyecta.Data.BO.UsuariosBO bo = new Data.BO.UsuariosBO();
            Proyecta.Data.DAO.RolesDAO dao = new Data.DAO.RolesDAO();
            bo.idUsuario = int.Parse(lblID.Text);
            dao.Eliminar(bo);
        }

        public void Redireccionar() //Link de Usuarios a index
        {
            Response.Redirect("Index.aspx");
        }

        public DataSet cargaRoles() //obtiene los datos de la base de datos para Roles
        {
            DataSet ds = null;
            Proyecta.Data.BO.RolesBO orol = new Proyecta.Data.BO.RolesBO();
            Proyecta.Data.DAO.RolesDAO oroldao = new Data.DAO.RolesDAO();

            ds = oroldao.Mostrar(orol);
            return ds;
        }

        public DataSet cargaInstituciones() // Obtiene los datos de la base de datos para instituciones
        {
            DataSet ds = null;
            Proyecta.Data.BO.InstitucionesBO oInst = new Proyecta.Data.BO.InstitucionesBO();
            Proyecta.Data.DAO.InstitucionesDAO Instdao = new Data.DAO.InstitucionesDAO();

            ds = Instdao.Mostrar(oInst);
            return ds;
        }

        public void llenarComboBoxInstituciones()//Invoca cargaInstituciones y setea propiedades
        {
            //ldtbInstit.DataSource = cargaInstituciones();
            //ldtbInstit.DataValueField = "idUsuario";
            //ldtbInstit.DataTextField = "Institucion";
            //ldtbInstit.DataBind();
        }

        public void llenarComboBoxRoles()//Invoca cargaRoles y setea propiedades
        {
            lstbRoles.DataSource = cargaRoles();
            lstbRoles.DataValueField = "idRol";
            lstbRoles.DataTextField = "Rol";
            lstbRoles.DataBind();
        }

        public void DataToUi(string id)//Carga los datos en el web form con la referencia del index
        {
            try//si no trae datos desde Index... sera nulo
            {
                DataSet ds = null;
                Proyecta.Data.BO.UsuariosBO bo = new Data.BO.UsuariosBO();
                Proyecta.Data.DAO.RolesDAO dao = new Data.DAO.RolesDAO();
                bo.idUsuario = int.Parse(id);

                ds = dao.MostrarporID(bo);

                lblID.Text = ds.Tables[0].Rows[0]["idUsuario"].ToString();
                lblIdRol.Text = ds.Tables[0].Rows[0]["idRol"].ToString();
                lblidInst.Text = ds.Tables[0].Rows[0]["idInstitucion"].ToString();
                txtNombre.Text = ds.Tables[0].Rows[0]["Nombres"].ToString();
                txtApellidoPaterno.Text = ds.Tables[0].Rows[0]["ApellidoPaterno"].ToString();
                txtApellidoMaterno.Text = ds.Tables[0].Rows[0]["ApellidoMaterno"].ToString();
                txtEmail.Text = ds.Tables[0].Rows[0]["Email"].ToString();
                txtcontraseña.Text = ds.Tables[0].Rows[0]["Contrasena"].ToString();
            }
            catch (Exception ex)
            {

            }

        }

    }
}